package com.swt.util;

import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

public class SaveImageUitl {
    /*
    上传图片的工具类
    调用该方法 传一个MultipartFile myFile   和一个HttpServletRequest request  就可以将文件存在固定
    会返回一个文件名字 该文件名字是文件存放目录和文件名字的组合 例如img/123.jpg
    */
    public static String saveImage(MultipartFile myFile, HttpServletRequest request){
        /*获取文件后缀名*/
        /*判断是否上传了文件*/
        if (myFile.getSize()!=0){
            String filename=myFile.getOriginalFilename();//文件名
            int index=filename.lastIndexOf(".");
            String s=filename.substring(index);//后缀名
            /*生成UUID*/
            String uuid = UUID.randomUUID().toString();
            String uuidFileName=uuid.replace("-","")+s;//文件名
            File f = new File(TSaveImageUitl.class.getResource("/").getPath());
            String path = f.getParentFile().getParent();
            System.out.println(path+"=======");
            int index1=path.lastIndexOf("out");
            path=path.substring(0,index1);
            filename=path+"SWT/web/img/"+uuidFileName;
            System.out.println(filename+"=================图片");
            /*保存到指定位置*/
            //创建一个文件
            File file = new File(filename);
            filename="img/"+uuidFileName;
            try {
                InputStream in = myFile.getInputStream();
                FileUtils.copyInputStreamToFile(in,file);
                System.out.println("图片保存");
            } catch (IOException e) {
                e.printStackTrace();
            }
            return filename;
        }
            return null;
    }
}
